home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Examples / Table / Include / TblCmds.h < prev    next >
Encoding:
Text File  |  1995-11-08  |  6.7 KB  |  225 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                TblCmds.h
  4. //    Release Version:    $ 1.0d11 $
  5. //
  6. //    Author:                Mary Boetcher
  7. //
  8. //    Copyright:    © 1993, 1995 by Apple Computer, Inc., all rights reserved.
  9. //
  10. //========================================================================================
  11.  
  12. #ifndef TBLCMDS_H
  13. #define TBLCMDS_H
  14.  
  15. // for CCell
  16. #ifndef TBLPART_H
  17. #include "TblPart.h"
  18. #endif
  19.  
  20. // ----- Framework Includes -----
  21.  
  22. #ifndef FWDRCMD_H
  23. #include "FWDrCmd.h"
  24. #endif
  25.  
  26. #ifndef FWEDCMD_H
  27. #include "FWEdCmd.h"
  28. #endif
  29.  
  30. //========================================================================================
  31. // Forward class declarations
  32. //========================================================================================
  33.  
  34. class FW_CLASS_ATTR CTableFrame;
  35. class FW_CLASS_ATTR CTablePart;
  36. class FW_CLASS_ATTR FW_CPresentation;
  37. class FW_CLASS_ATTR CTableSelection;
  38. class FW_CLASS_ATTR CTableProxy;
  39. class FW_CLASS_ATTR CTablePublishLink;
  40. class FW_CLASS_ATTR CTableSubscribeLink;
  41.  
  42. //========================================================================================
  43. //    class CCellDragCommand
  44. //========================================================================================
  45.  
  46. class FW_CLASS_ATTR CCellDragCommand : public FW_CDragCommand
  47. {
  48.   public:
  49.     CCellDragCommand(Environment* ev,
  50.                      CTablePart* itsPart,
  51.                      FW_CFrame* frame,
  52.                      CTableSelection* selection);
  53.  
  54.     virtual ~ CCellDragCommand();
  55.  
  56.     // --- for Undo/Redo ---
  57.     virtual void        UndoIt(Environment *ev);    // Override
  58.     virtual void        RedoIt(Environment *ev);    // Override
  59.     virtual void        SaveUndoState(Environment *ev);    // Override
  60.     virtual void        FreeUndoState(Environment *ev);    // Override
  61.  
  62.   private:
  63.     CTablePart*            fTablePart;
  64.     CTableSelection*    fTableSelection;
  65.     CTableProxy*        fSavedProxy;    // saved selection for redo
  66.     CCell                fDragCell;
  67. };
  68.  
  69. //========================================================================================
  70. //    class CCellDropCommand
  71. //========================================================================================
  72.  
  73. class FW_CLASS_ATTR CCellDropCommand : public FW_CDropCommand
  74. {
  75.   public:
  76.     CCellDropCommand(Environment *ev,
  77.                     CTablePart* itsPart,
  78.                     CTableFrame* frame,
  79.                     ODDragItemIterator* dropInfo, 
  80.                     ODFacet* odFacet,
  81.                     const FW_CPoint& dropPoint,
  82.                     const CCell& dropCell,
  83.                     const CCell& draggedCell);
  84.  
  85.     virtual ~ CCellDropCommand();
  86.  
  87.     // --- FW_CDropCommand overrides
  88.     virtual FW_Boolean DoDrop(Environment *ev, 
  89.                             ODStorageUnit* dropSU, 
  90.                             const FW_CPoint& mouseOffset,
  91.                             const FW_CPoint& dropPoint,
  92.                             FW_Boolean isDropMove);
  93.     virtual FW_Boolean DoDroppedInSameFrame(Environment *ev, ODStorageUnit* dropSU, const FW_CPoint& originPoint, const FW_CPoint& dropPoint);
  94.  
  95.     // --- for Undo/Redo ---
  96.     virtual void        UndoIt(Environment *ev);    // Override
  97.     virtual void        RedoIt(Environment *ev);    // Override
  98.     virtual void        SaveRedoState(Environment *ev);    // Override
  99.     virtual void        FreeRedoState(Environment *ev);    // Override
  100.  
  101.   private:
  102.     CTablePart*            fTablePart;
  103.     CTableFrame*        fTableFrame;
  104.     CTableSelection*    fTableSelection;
  105.     CCell                fDropCell;
  106.     CCell                fDraggedCell;
  107.     CTableProxy*        fSavedProxy;    // saved selection for undo/redo
  108. };
  109.  
  110. //========================================================================================
  111. // CLASS CTableEditCommand
  112. //========================================================================================
  113.  
  114. class FW_CLASS_ATTR CTableEditCommand : public FW_CEditCommand
  115. {
  116.   public:
  117.     FW_DECLARE_CLASS
  118.  
  119. //----------------------------------------------------------------------------------------
  120. //    Initialization/Destruction
  121. //
  122.   public:
  123.     CTableEditCommand(Environment* ev,
  124.                       ODCommandID id,
  125.                       CTablePart* itsPart,
  126.                       FW_CFrame* frame,
  127.                       CTableSelection* selection);
  128.  
  129.     virtual ~ CTableEditCommand();
  130.  
  131. //----------------------------------------------------------------------------------------
  132. //    Overrides
  133. //
  134.     virtual void            DoClear(Environment* ev);    // Override
  135.     virtual void            DoCut(Environment* ev);        // Override
  136.  
  137.     virtual void            DoPaste(Environment* ev);    // Override
  138.  
  139.  
  140.     // --- for Undo/Redo ---
  141.     virtual void            UndoIt(Environment *ev);    // Override
  142.     virtual void            RedoIt(Environment *ev);    // Override
  143.     virtual void            SaveUndoState(Environment *ev);    // Override
  144.     virtual void            SaveRedoState(Environment *ev);    // Override
  145.     virtual void            FreeUndoState(Environment *ev);    // Override
  146.     virtual void            FreeRedoState(Environment *ev);    // Override
  147.  
  148.     //---- Undo PasteAs support ----
  149.     void UndoPasteAs(Environment* ev);
  150.     void RedoPasteAs(Environment* ev);
  151.     
  152. //----------------------------------------------------------------------------------------
  153. //    New API
  154. //
  155.   private:
  156.     void SaveSelection(Environment* ev);
  157.     void RemoveSelection(Environment* ev);
  158.     void RestoreSelection(Environment* ev);
  159.     void DeleteSavedProxy(Environment* ev);
  160.  
  161. //----------------------------------------------------------------------------------------
  162. //    Data Members
  163. //
  164.   private:
  165.     CTablePart*            fTablePart;
  166.     CTableSelection*    fTableSelection;
  167.     CTableProxy*        fSavedProxy;    // saved selection for undo/redo
  168.     CCell                fPasteAsCell;        // saved cell for Undo PasteAs
  169.     CTableSubscribeLink* fSavedLink;        // saved link for Redo PasteAs
  170. };
  171.  
  172. //========================================================================================
  173. // CLASS CBreakLinkSourceCommand - break a source link (undoable)
  174. //========================================================================================
  175.  
  176. class FW_CLASS_ATTR CBreakLinkSourceCommand : public FW_CCommand
  177. {
  178.   public:
  179.     FW_DECLARE_CLASS
  180.  
  181.     CBreakLinkSourceCommand(Environment* ev,
  182.                             FW_CFrame* frame,
  183.                             CTablePublishLink* linkSource);
  184.  
  185.     virtual ~CBreakLinkSourceCommand();
  186.  
  187.     virtual void DoIt(Environment* ev);        // Override
  188.     virtual void UndoIt(Environment* ev);    // Override
  189.     virtual void RedoIt(Environment* ev);    // Override
  190.  
  191.     virtual void CommitDone(Environment* ev);    // Override
  192.  
  193.   protected:
  194.     CTablePublishLink*    fLinkSource;    // source link to be broken
  195. };
  196.  
  197.  
  198. //========================================================================================
  199. // CLASS CBreakLinkCommand - break a destination link (undoable)
  200. //========================================================================================
  201.  
  202. class FW_CLASS_ATTR CBreakLinkCommand : public FW_CCommand
  203. {
  204.   public:
  205.     FW_DECLARE_CLASS
  206.  
  207.     CBreakLinkCommand(Environment* ev,
  208.                       FW_CFrame* frame,
  209.                       CTableSubscribeLink* linkDestination);
  210.  
  211.     virtual ~CBreakLinkCommand();
  212.  
  213.     virtual void DoIt(Environment* ev);        // Override
  214.     virtual void UndoIt(Environment* ev);    // Override
  215.     virtual void RedoIt(Environment* ev);    // Override
  216.  
  217.     virtual void CommitDone(Environment* ev);    // Override
  218.  
  219.   protected:
  220.     CTableSubscribeLink*    fLink;    // destination link to be broken
  221. };
  222.  
  223.  
  224. #endif
  225.